perm filename NCOPY.VLI[VLI,LSP] blob sn#382037 filedate 1978-09-08 generic text, type T, neo UTF8

(de ncopy ( l ;; d res)
  ( if ( atom l) l
       (copy2 l ( setq res ( cons)))
       res)))))))

(de copy2 ( l r ;; aux) 
  ( setq d ( mcons l r d))
  ( cond
    ((atom ( car l)) ( rplaca r ( car l))
           (cond

              ((atom (cdr l)) (rplacd r (cdr l)))

              
              ((setq aux (memq (cdr l) d)) (rplacd r (cadr aux)))

              (t (copy2 (cdr l) (cdr (rplacd r ( cons)))))))

    ((atom (cdr l)) (rplacd r (cdr l))
        (cond
              ((atom (car l)) (rplaca r (car l)))
              ((setq aux (memq (car l) d)) (rplaca r (cadr aux)))

              (t (copy2 (car l) ( car (rplaca r (cons)))))))
    ((setq aux (memq (car l) d)) (rplaca r (cadr aux))
       (cond
          ((atom (cdr l)) (rplacd r (cdr l)))
          ((setq aux (memq (cdr l) d)) (rplacd r (cadr aux)))
          (t (copy2 (cdr l) (cdr (rplacd r (cons)))))))
    ((setq aux (memq (cdr l) d)) (rplacd r (cadr aux))
       (cond
          ((atom (car l)) (rplaca r (car l)))
          ((setq aux (memq (car l) d)) (rplaca r (cadr aux)))
          (t (copy2 (car l) (car (rplaca l ( cons)))))))
    (t (copy2 (car l) (car ( rplaca r ( cons))))
       (copy2 (cdr l) (cdr (rplacd r (cons)))))))
      )))))))))))